הרצאה מספר 10 נושאים לשיעור זה: סיכום הפקודות עד לשיעור זה *** )S-Q( = מקומות בהם ניתן לשלב תתי שאילתות

Similar documents
ASP.Net MVC + Entity Framework Code First.

Web Services שפת SQL. כתבה: זהבה יעקובסון ליווי מקצועי : ארז קלר

המבנה הגאומטרי של מידה

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

בסיסי נתונים - קורס מתקדם תשע"ח )סמסטר קיץ(

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

Patents Basics. Yehuda Binder. (For copies contact:


תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

מבוא לתכנות ב- JAVA תרגול 7

חוק זכויות הסוכן חוק חוזה סוכנות )סוכן מסחרי וספק(

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

יסודות מבני נתונים. תרגול :9 ערימה - Heap

קורס מטלב לפיסיקאים שיעור מס' 10: משתנים מורכבים

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

Practical Session No. 13 Amortized Analysis, Union/Find

תרגול 8. Hash Tables

Reflection Session: Sustainability and Me

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

Theories of Justice

ANNEXURE "E1-1" FORM OF IRREVOCABLE STANDBY LETTER OF CREDIT PERFORMANCE OF CONTRACT (WHERE PRICES ARE NOT LINKED TO AN ESCALATION FORMULA)

A R E Y O U R E A L L Y A W A K E?

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

1.1. הקדמה (דיסק). מדריכי. (מחיצות) Link

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

מבוא למחשב בשפת פייתון

חטיבת המינרלים החיוניים תתמקד בשוקי האגרו וחטיבת הפתרונות המיוחדים תשמש כחטיבה התעשייתית; כיל דשנים מיוחדים תשולב בחטיבת המינרלים החיוניים;

תרגול מס' 01 אלגוריתם דיניץ

Summing up. Big Question: What next for me on my Israel Journey?

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מושגים בסיסיים תלמידים והורים יקרים,

מבוא לרשתות - תרגול מס' 11 Transparent Bridges

מבחן באנגלית בהצלחה הצלחה!!! שם פרטי: שם משפחה: מס' תעודת זהות: תאריך: שם מרכז מנהל מרכז השכלה: תאריך בדיקת המבחן: כל הזכויות שמורות למשרד החינוך

Structural Vs. Nominal Typing

Genetic Tests for Partners of CF patients

דיאגרמה לתיאור Classes

מודל מעבד-זיכרון רוחב הקו בביטים בין המשתנה למעבד ב- PDP כיווני העברת המידע במודל מעבד-זיכרון SFS CPU MDR MEM MAR

Homework 10. Theoretical Analysis of Service Stations in Steady State. Priority Queues.

תכנון אלגוריתמים, אביב 2010, תרגול מס' 7 סריקה לעומק, מיון טופולוגי, רכיבים קשירים היטב. time time 1

פקס בחיבור המכשיר המשולב לפקס יש לעבור על השלבים הבאים: - חבר את כבל הטלפון לחיבור ה- LINE בגב המדפסת ואת צידו השני לשקע הטלפון בקיר.

תרגול מספר 9: בנאים, שיטות של אובייקטים והכמסה מבוא למדעי המחשב - סמסטר א' תשע"א,תרגול מס' 9. נושאי התרגול: this

A Long Line for a Shorter Wait at the Supermarket

דגשים: הערות: John Bryce Linux Forum: (Linux) BIND Mini How-To (In Hebrew) על שרת Red Hat Enterprise Linux גרסא.5.

מדריך לניהול VPS טריפל סי מחשוב ענן בע"מ.

הקיטסיגול הרבחה יעדמל בלושמה גוחה

SPSS 10.0 FOR WINDOWS

Adam: Meet Haman. A Sermon Delivered by Rabbi Haskel Lookstein on Shabbat Bereishit October 25, 2008

Apple, keys, pen, pencils, pencilbox,(toy)elephant,( toy) boy, (toy) girl, ball

זה. Nir Adar

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

פרצות אבטחה נפוצות בהעלאת קבצים בעזרת PHP

2007 Zindell Technologies, Ltd.

Transgender in Halacha

תורשכ ירפס לכ ץבוק " ב י קלח יללכ רעש

Yetzer Shalom: Inclinations of Peace

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

Visual C# Express יסודות מדעי המחשב 1 מהדורת עיצוב תשס"ו 2006 כתבה: יעל בילצ'יק (סופרין)

ניסוי בפייתון מכון טכנולוגי לישראל הניסוי מתקיים בבניין פישבך, חדר 573 )במסדרון למאייר(. המאחר ביותר מ- 53 דקות לא יורשה לבצע את הניסוי.

ל"תוכנה" שכותבים, כמו פונקציה זו, קוראים "קוד"

מדריך למשתמש בשירות. yes MultiRoom

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

מדריך למשתמש התקנה עצמית

מערכים Haim Michael. All Rights Reserved.

THINKING ABOUT REST THE ORIGIN OF SHABBOS

חוברת זו כוללת חומר תמיכה לנלמד בתרגולים בנושא שימוש בתוכנת

State Pattern מימוש מכונת מצבים (FSM) מבוא בעיה תמיכה ועדכונים עדכון מס' 48 מאי 2002

מטוסים נופלים, כורים מתפוצצים זיכרון אוטומטי מקטסטרופות לומדים בניינים קורסים,

WHAT IS THE PSHAT OF A METAPHORICAL MITZVAH?

NJ NCSY Winter Regional פירסומי ניסא Publicizing the Miracle of Hanukah

סדנת יסודות מטלב שיעור מס' 6: ארגון, מיון ועיבוד נתונים

אנגלית (MODULE E) בהצלחה!

I.(Select C1.CardName From OCRD C1 Where C1.CardCode=OITM.CardCode) I.(Select C1.CardName From OCRD C1 Where (C1.CardCode=OITM.CardCode) and C1.

Operating Systems, 142. Practical Session 12 File Systems, part 2

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

לחמן המדור בהצלחה מהדורה 039

defile my holy name and I shall be sanctified among the children of Israel. I am Hashem who sanctifies you.

Water Security in the Middle East Source of Tension or Avenue for Peace

T H E S U N F L O W E R L I M I T S T O F O R G I V E N E S S

עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx

מבני נתונים תרגיל 4 פתרון

The Connection between Town Planning, Public Taking (Appropriation) and Land Appraisal

First Approach: Kiddush Hashem

ראש השנה דף. 1. A) Our משנה says,... שנראה בעליל בין שלא נראה בעליל.בין Based on this,פסוק what does the word עליל mean?

הקדמה בדיקת תמיכה ב- SSL מאת עידו קנר

הכלה המשך בדף עבודה הקודם, הדגשנו את ההכלה של אובייקט אחד מוכל בתוך אובייקט אחר.

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

מדריך מקוצר Microsoft Office Word 2007

7 קרפ תויגול,תויטמתירא תודוקפ הזזהו

FULL ARTICLE ACTIVE DIRECTORY

דיאלוג מומחז בין מרטין בובר וקרל רוג'רס

SHABBOS, 10 TAMMUZ, 5778

עבודה מס' 3: תכנות מונחה עצמים ורשימות

Transcription:

נושאים לשיעור זה: שאלת רענון בצירוף טבלאות פקודות :DDL מפתח ראשי Key( )Primary מפתח זר )חיצוני Key )Foreign o o סיכום הפקודות עד לשיעור זה SELECT id, count(id) + (S-Q) FROM Students AS S LEFT OUTER JOIN Course AS C, (S-Q) AS SQ ON S.studentID = C.studentID WHERE (id=3) AND (name is not NULL) AND X = (S-Q) GROUP BY id HAVING count(id) > 1 / count(id) = (S-Q) ORDER BY id, name *** )S-Q( = מקומות בהם ניתן לשלב תתי שאילתות 1

שאלת רענון בצירוף טבלאות: נתונות 2 טבלאות, מה יהיה הפלט ע"י הרצת 2 השאילתות הנ"ל? t1 a b 1 a 2 b t2 b c b 3 c 4 SELECT * FROM t1 LEFT JOIN t2 ON (t1.b = t2.b); a b b c 1 a Null Null 2 b b 3 לעומת זאת אם היינו מבצעים את הפקודה הבאה: SELECT * FROM t1 LEFT JOIN t2 ON (TRUE) WHERE (t1.b = t2.b); a b b c 2 b b 3 מתבצע צירוף חיצוני, כאשר כל השורות עומדות בתנאי הצירוף )כולם מקיימים את )TRUE ז"א שנקבל בעצם מכפלה קרטזית של הטבלאות )4 שורות(. כעת, מכיוון שאף שורה לא נפלה, אין צורך בביצוע ריפוד עם ערכי.NULL a b b c 1 a b 3 1 a c 4 2 b b 3 2 b c 4 מסקנה: יש משמעות למיקום התנאי, נוכל לראות שהתוצאות שונות אם התנאי מופיע בפקודת ה ON או בפקודת ה USING לעומת התוצאה שתתקבל אם יופיע בתנאי ה.WHERE 2

פקודות :DML בשיעורים האחרונים עסקנו בפקודות DML הנוגעות בנתונים וראינו שיש פקודות העוסקות בשליפה, הוספה, עדכון ומחיקה של נתונים/רשומות בטבלה. עד כה, למדנו את הפקודות הבאות: Insert הכנסת נתונים לטבלה Update עדכון נתונים בטבלה קיימת Delete מחיקת נתונים מטבלה קיימת Select שליפת נתונים השיעור נתחיל ללמוד את החלק השני בשפת ה SQL פקודות DDL העוסקות במבנה. פקודות :DDL )Primary 1( מפתח ראשי Key( מפתח ראשי שדה )או אוסף שדות( המזהה באופן חד ערכי )ומינימאלי( רשומה מסוימת בטבלה. דוגמא 1: מפתח ראשי הבנוי משדה בודד - מספר תעודת זהות בטבלת סטודנטים. StudentID 111 222 333 Students FirstName Avi Dan Ofer LastName Cohen Israeli Bar 3

דוגמא 2: מפתח ראשי הבנוי מאוסף שדות נבנה טבלה המציגה רשימת ספקים ורשימת מוצרים, כאשר נתון: שמות הספקים יהיו: אסם, שטראוס ותנובה המוצרים המיוצרים על ספקים אלו הם: קוטג', קטשופ וגבינה לבנה Vendor Osem Product Ketchup Price 10.00 6.30 5.80 Weight (gr) 1000 מי יהיה שדה המפתח בטבלה? נוכל לראות שלא ניתן להגדיר את הספק כמפתח כי יש ספקים החוזרים על עצמם, על אותו משקל נראה שלא ניתן להגדיר את המוצר כמפתח ראשי כי יש מוצרים בעלי אותו שם לספקים שונים )וכנ"ל לגבי מחיר ומשקל בהם ערכים חוזרים על עצמם(. לכן, הפתרון הוא להגדיר מפתח משולב )מפתח המורכב ממספר שדות( המכיל את השדות ספק+מוצר. שילוב של שדות אלו מבטיח בצורה חד ערכית שהשילוב של ספק+מוצר הינו ייחודי ומינימאלי עבור כל שורה בטבלה. Vendor Osem Product Ketchup Price 10.00 6.30 5.80 Weight (gr) 1000 הערות כפילות ערכים בשדה מפתח )בהמשך לדוגמא הקודמת( - אם מפתח ראשי מורכב מיותר משדה אחד )כמו בדוגמא לעיל(, אזי ערכי אחד השדות יכולים להיות כפולים בתוך עמודה נתונה )לדוגמא: בעמודת ספק נוכל לראות שתנובה מופיעה מספר פעמים( אבל השילוב של כל שדות המפתח הראשי חייבים להיות ייחודיים ברמת טבלה. 4

הוספת אילוץ בשלב יצירת טבלה כפי שלמדנו עד היום, שאנו באים ליצור טבלה חדשה עלינו להגדיר עבור כל טבלה את השדות )העמודות( שירכיבו את הסכמה של הטבלה לעתיד. במהלך בניית טבלה חדשה אנו יכולים בנוסף לשם העמודה העתידי ולסוג העמודה )type( להוסיף גם אילוץ עבור כל עמודה המוגדרת בסכמה. מבנה שורה בפקודת Create יוכל להכיל את המבנה הבא: Column Name Type Constraint לדוגמא: ID int NOT NULL הגדרת מפתח ראשי הגדרת מפתח ראשי - אנו נגדיר את המפתח הראשי בטבלה בשלב של יצירת הטבלה ע"י הוספת הפקודה. והשדות שמרכיבים את המפתח. *** הערה, בעקרון בטבלה יוצג מספר הספק וקוד המוצר ולא השמות שלהם, אך בדוגמא זו על מנת להבהיר את הנקודה הוצגו הנתונים בשמותיהם ולא בקודים המסמלים אותם. *** CREATE TABLE Example ( Vendor TEXT NOT NULL, Product TEXT NOT NULL, Price FLOAT NOT NULL, Weight FLOAT, PRIMARY KEY (Vendor, Product) ); כמות מפתחות - כל טבלה יכולה שיהיה לה רק מפתח ראשי אחד )שיכול להיות מורכב ממספר שדות( והוא אינו יכול להכיל ערכי NULL מכיוון ששדות המפתח חייבים להכיל ערכים ייחודים. מניעת חזרות ע"י הגדרת מפתח ראשי אנו בעצם מונעים אפשרות של הכנסת שורות כפולות לתוך אותה טבלה. ע"י הגדרת מפתח ראשי, ה DBMS הוא זה שמונע מצב של הכנסת שורה כפולה. 5

)2 מפתח זר / חיצוני Key( )Foreign מפתח זר שדה )או אוסף שדות( המצביע על מפתח ראשי בטבלה אחרת. מפתח זר הינו שדה )עמודה( בטבלה אשר ערכיו האפשריים )Domain( נשאבים משדה מקביל בטבלה אחרת אשר בה הוא משמש כמפתח ראשי. ערכי המפתח הזר אינם בלעדיים Unique( )Not בטבלת הבן ויכולים לחזור על עצמם )לדוגמא שדה מספר סטודנט(. דוגמא: קיימת טבלת סטודנטים שבה כל סטודנט משוייך למחלקה בה הוא לומד, כמו כן קיימת טבלת מחלקות המכילה נתונים על כל מחלקה בפקולטה למדעים מדוייקים. ניתן לראות שבכל טבלה יש מפתח ראשי ובמקביל בטבלת סטודנטים עמודת המחלקה מהווה מפתח זר לטבלת מחלקות )כיוון ששדה זה מהווה מפתח ראשי בטבלת מחלקות(. StudentID 111 222 333 FirstName Avi Dan Ofer Students LastName Cohen Israeli Bar Foreign Key Computers s NumberOfCoures 40 52 48 NumberOfStudents 60 720 140 Building A C B נוכל לראות שבהפניה של מפתח זר, נוצר קישור )לינק( בין 2 טבלאות )בירוק( כאשר בצד אחד מופיע שדה המהווה מפתח ראשי בטבלה אחת )מוקף בכתום( שדה זה הופך להיות מפתח זר בטבלת השנייה )מוקף באדום(. 6

הערות מטרה נוספת של מפתח זר היא שמירה על שלמות הנתונים integrity[,]data הכוונה בכך היא שניתן להגדיר קשר זה כאילוץ )Constraint( בהגדרת הטבלה, כך שמערכת ניהול בסיס הנתונים )DBMS( תמנע מצב שיוכנסו ערכים בשדה המפתח הזר שאינם עונים לאילוץ, כלומר אינם נמצאים בטבלת האב. כתוצאה מהגדרת אילוץ כזה, לא נוכל למחוק רשומה מטבלת האב כל עוד ישנן רשומות בטבלת הבן המכילות את מפתח הרשומה כמפתח זר. בשורה התחתונה: על ידי שימוש במפתח זר מגדירים, ולמעשה יוצרים, את הקשרים בין הטבלאות השונות בבסיס הנתונים. לדוגמא: נניח שהיינו רוצים למחוק את מחלקת מתמטיקה מתוך טבלת מחלקות, מחיקה מסוג זה תיצור בעיה לאור העובדה שקיים סטודנט )222( ששייך למחלקה זו )בטבלת סטודנטים( ולכן בשלב המחיקה מטבלת מחלקות, המפתח הזר יגרור את הופעתה של הודעת שגיאה המונעת את מחיקת שורה זו מטבלת מלקות אלא אם קודם לכן נמחק את הסטודנט השייך למחלקה זו )שזו כמובן בקשה הגיונית לאור העובדה שאנו מתכוונים למחוק את המחלקה מהמאגר והגיוני שנוכל למחוק אותה רק אם אין בה סטודנטים(. StudentID 111 222 333 FirstName Avi Dan Ofer Students LastName Cohen Israeli Bar Foreign Key Computers s NumberOfCoures 40 52 48 NumberOfStudents 60 720 140 Building A C B 7